/**
 * mixin全局混入
 * 好处作用：复用组件逻辑
 */
import store from '@/store'
export default {
    data() {
        return {
            // 全局混入一个变量
            xiaotian: 10000
        }
    },
    methods: {
        // 定义全局混入的公共方法
        /**
         * 
         * @param {*} point 检测的权限点标识（身份象征）
         */
        checkPoints(point) {
            /**
             * 检查当前登录人是否可以使用某个按钮权限：
             * 1.获取登录人按钮权限点数据(points)，进行是否有权限判断->返回true | false
             *   points数组中拥有身份标识->显示按钮
             *   points数组中没有身份标识->不显示按钮
             * 2.在需要做权限控制页面下的按钮上使用->结合v-if="checkPoints(当前按钮功能的身份标识)"使用
             */
            // 原因❓：退出登录时重置用户数据，会响应式刷新，执行checkPermission获取数据异常
            // 解决方式一：
            // try {
            //     const { points } = store.state.user.userInfo.roles
            //     return points.includes(point)
            // } catch (error) {
            //   console.log(error)
            // }
            // 解决方式二：?可选链
            const { userInfo } = store.state.user
            return userInfo.roles?.points.includes(point)
        }
    },
}